home *** CD-ROM | disk | FTP | other *** search
/ Chip 2003 January / ChipCD_1.03.iso / zkuste / wmakeup / download / razorart vr2.wba / WBAmp.txt < prev    next >
Text File  |  2000-09-27  |  19KB  |  360 lines

  1. //////////////////////////////////////////////////////////////////////
  2. // WBAmp
  3. // Copyright (c) 2000 Matthijs Vermeulen (MadIce XIII)
  4. // MadIceXIII@hotmail.com
  5. //////////////////////////////////////////////////////////////////////
  6. // THIS DOCUMENT MUST BE INCLUDED WITH ANY DISTRIBUTION OF THE PLUGIN.
  7. // DO NOT CHANGE THE CONTENTS OF THIS FILE.
  8. // THERE IS NO NEED TO INCLUDE THE SOURCE CODE IN THE DISTRIBUTION.
  9. // YOU ARE NOT ALLOWED TO USE THE PLUGIN FOR ANY COMMERCIAL PURPOSES.
  10. // STARDOCK.NET IS ALLOWED TO DISTRIBUTE WBAMP WITHOUT PERMISSION.
  11. // THE USE OF THIS SOFTWARE IS AT YOUR OWN RISK.
  12. // I CANNOT BE HELD RESPONSIBLE FOR ANY DAMAGES CAUSED BY ITS USE.
  13. //////////////////////////////////////////////////////////////////////
  14. // Special thanks to the beta-testers
  15. // * Morphh (the originator of WBAmp)
  16. // * d
  17. // * dbqp
  18. // * Dan Boldon
  19. // * Philip Powell
  20. // * Mercury
  21. // * jef
  22. // * Jafo
  23. // * David K (ultimate CoolPlayer tester!)
  24. // These people came up with a lot of ideas for WBAmp.
  25. // Most of them are implemented.
  26. //////////////////////////////////////////////////////////////////////
  27. // Thanks to d and Adam Najmanowicz for the intergration in BB
  28. // The latest version of WBAmp can be found at http://go.to/WBStuff
  29. // You can find other fantastic WB Stuff there too
  30. //////////////////////////////////////////////////////////////////////
  31. // Thanks to Neil Banfield for his support
  32. //////////////////////////////////////////////////////////////////////
  33. // Thanks to Lowell Heddings for publishing the source code of
  34. // GeekAmp (a remote control for WinAmp in LiteStep)
  35. //////////////////////////////////////////////////////////////////////
  36. // Thanks to Niek Alberts (creator of CoolAmp) for his support
  37. //////////////////////////////////////////////////////////////////////
  38. // Thanks to crazygirl76 for making me wonder why I didn't include 
  39. // support for CoolPlayer in the first place...
  40. //////////////////////////////////////////////////////////////////////
  41.  
  42. //////////////////////////////////////////////////////////////////////
  43. // What is WBAmp?
  44. //////////////////////////////////////////////////////////////////////
  45.  
  46. WBAmp is a plugin which can be used to control CoolPlayer or WinAmp from within the titlebar of a WindowBlinds skin.
  47.  
  48. The following functions are available:
  49.  
  50. //////////////////////////////////////////////////////////////////////
  51. // WBAmp Functions
  52. //////////////////////////////////////////////////////////////////////
  53.  
  54.  1 Play: Start playing a track.                                  CP WA
  55.  2 PauseResume: Pause or resume playing a track.                 CP WA
  56.  3 Stop: Stop playing a track.                                   CP WA  
  57.  4 Close: Terminate player.                                      CP WA
  58.  5 Previous: Play the previous track.                            CP WA
  59.  6 Next: Play the next track.                                    CP WA
  60.  7 Rewind: Fast rewind 5 seconds.                                CP WA
  61.  8 Forward: Fast forward 5 seconds.                              CP WA
  62.  9 First: Play the first track.                                     WA
  63. 10 Last: Play the last track.                                       WA
  64. 11 Lower: Lower the volume by 10%.                               CP WA
  65. 12 Raise: Raise the volume by 10%.                               CP WA
  66. 13 Lower: Lower the volume by 5%.                                CP WA
  67. 14 Raise: Raise the volume by 5%.                                CP WA
  68. 15 Lower: Lower the volume by 1%.                                CP WA
  69. 16 Raise: Raise the volume by 1%.                                CP WA
  70. 17 Hide: Hide player.                                            CP WA
  71. 18 Show: Show player.                                            CP WA
  72. 19 File: Play a file.                                            CP WA
  73. 20 Folder: Play a folder.                                           WA
  74. 21 URL: Play a URL.                                                 WA
  75. 22 Menu: Show the player's menu.                                    WA
  76. 23 Shuffle: Toggle shuffle mode.                                 CP WA
  77. 24 Repeat: Toggle repeat mode.                                   CP WA
  78. 25 Single: Stop after the current track.                            WA
  79. 26 VISStartStop: Start or stop the VIS plugin.                      WA
  80. 27 VISConfigure: Configure the VIS plugin.                          WA
  81. 28 VISSelect: Select a VIS plgin.                                   WA
  82. 29 VISOptions: VIS Preferences.                                     WA
  83. 30 Run: Start the player and minimize it.                        CP WA
  84.  
  85. //////////////////////////////////////////////////////////////////////
  86. // How do I connect a plugin function to a button?
  87. //////////////////////////////////////////////////////////////////////
  88.  
  89. Here is an example of Button 19 which will serve as the play button.
  90. [Button19]
  91. Action=-4
  92. DllName=SkinName\WBAmp.dll
  93. WBAmp=1
  94. WBAmpShift=18
  95. WBAmpCtrl=17
  96. ButtonImage=SkinName\ButtonName.bmp
  97. Visibility=26
  98. Visibility1=19
  99. Visibility2=1
  100. ...
  101.  
  102. [WBAmp]
  103. DialogMode=0
  104.  
  105. Use the WBAmp Functions Table to lookup a function. Get its number.
  106. Assign its value to the WBAmp entry of the button. To use Pause/Resume set WBAmp to 2, To use Stop set it to 3, etc.
  107.  
  108. The WBAmpShift entry specifies what function must be executed when the button is clicked while pressing the Shift key.
  109.  
  110. The WBAmpShift entry specifies what function must be executed when the button is clicked while pressing the Ctrl key.
  111.  
  112. Note that the WBAmp, WBAmpShift and WBAmpCtrl entry values must be present. There are no defaults. Note that the WBAmpShift and WBAmpCtrl entries are optional.
  113.  
  114. The visibility options as show here are optional, but I would suggest considering these. The number of buttons can become large and you will not always want to show them. In this example the button is show only when the window is not a dialog window (either the maximize or minimize buttons must exist), when the window is not a MDI window (this prevents more than one set of buttons in a MDI application) and when the window has the focus (this prevents the desktop to be crowded with WBAmp buttons).
  115.  
  116. All other button options can be used as normal. The "Plugin width" ("Width") and plugin height ("Height") parameters are ignored since WB draws the button. The plugin must be included in the same directory as the skin. Do not forget to include the plugin in the ZIP-file.
  117.  
  118. The [WBAmp] section describes WBAmp options. At the moment there is only the DialogMode entry. If set to 1 then the player is shown whenever a WBAmp button shows a dialog box.
  119.  
  120. //////////////////////////////////////////////////////////////////////
  121. // Song title button
  122. //////////////////////////////////////////////////////////////////////
  123.  
  124. There is one special button. It shows the current song title. It has to be declared a little bit different. This is an example.
  125. [Button26]
  126. Action=-3
  127. DllName=DarkAmpXIII\WBAmp.dll
  128. Align=1
  129. XCoord=224
  130. YCoord=4
  131. Width=120
  132. Height=20
  133. Visibility=26
  134. Visibility1=19
  135. Visibility2=1
  136. ...
  137.  
  138. [WBAmp]
  139. TitleBack=DarkAmpXIII\TitleBack.bmp
  140. TitleMode=1
  141. TimerInterval=1000
  142. FontName=Arial
  143. FontClip=4
  144. FontHeight=0
  145. FontWeight=0
  146. FontItalic=0
  147. FontUnderline=0
  148. FontStrikeOut=0
  149. FontColorR=255
  150. FontColorG=255
  151. FontColorB=255
  152.  
  153. The Action entry must be set to -3. This ensures that the plugin can update the button. Make shure that you do not specify a ButtonImage. If you do specify one than it uses resources that are never used. Instead use the TitleBack entry in the WBAmp section. That section also specifies the TitleMode. In this version there are only two modes. If the TitleMode is set to 1 then the button image contains two images (for the active and inactive state). If the TitleMode is ommited or set to 0 then no title and button will be displayed (just a black box). So you will have to set it to 1. Other values are reserved for future releases.
  154.  
  155. The "Width" and "Height" entries must be present. The number pixels along the X-axis of the TitleBack image must be equal to 2 x Width. The number of pixels along the Y-axis must be equal to Height.
  156.  
  157. The TitleBack image looks like a normal title bar button. It contains 2 images:
  158. 1: Active
  159. 2: Inactive
  160.  
  161. The TimerInterval entry sepecifies the timer interval in milliseconds. The lower the number the faster the update, but the higher the CPU usage. Infact Windows is not able to be very accurate. It uses the message queue for timer updates, which can be slow and inacurate. The default timer interval of 1 second (1000 milliseconds) is a good value. It increases CPU usage by 4% on a 500MHz PIII system.
  162.  
  163. The following font entries (in the WBAmp section) are optional:
  164. FontName       =Font name (less than 32 characters)
  165. FontClip       =Number of pixels to clip from left and right border
  166. FontHeight     =Pixels (negative value) or points (positive value)
  167. FontWeight     =0, 100, 200, 300, 400, 500, 600, 700, 800, 900
  168. FontItalic     =0 (normal) or 1 (italic)
  169. FontUnderline  =0 (normal) or 1 (underline)
  170. FontStrikeOut  =0 (normal) or 1 (strike-out)
  171. FontColorR     =Between 0 and 255 (inclusive)
  172. FontColorG     =Between 0 and 255 (inclusive)
  173. FontColorB     =Between 0 and 255 (inclusive)
  174.  
  175. The FontWeight is used as follows:
  176.   0: Don't care 
  177. 100: Thin
  178. 200: Extra light (ultra light)
  179. 300: Light
  180. 400: Normal (regular)
  181. 500: Medium
  182. 600: Semi bold (demi bold)
  183. 700: Bold
  184. 800: Extra bold (ultra bold)
  185. 900: Heavy (black)
  186.  
  187. The FontColorR, FontColorG and FontColorB entries form the RGB values of the font color.
  188.  
  189. All other button options can be added as required.
  190.  
  191. Note that the title is only updated in the active window. This prevents that the skin uses to much CPU time.
  192.  
  193. //////////////////////////////////////////////////////////////////////
  194. // Installing CoolPlayer
  195. //////////////////////////////////////////////////////////////////////
  196.  
  197. The installation of CoolAmp is easy. Select "Options" from the menu, enable the "Scroll Songtitle" option. You may also want to disable the "Show on taskbar" option.
  198.  
  199. Whenever CoolPlayer is started it will show up on the system tray. Most skins do not show CoolPlayer by default. Some have an option to show it, but you can also double click the CoolPlayer icon.
  200.  
  201. //////////////////////////////////////////////////////////////////////
  202. // Installing WBAmp
  203. //////////////////////////////////////////////////////////////////////
  204.  
  205. The installation of WBAmp is actually a matter of configuring WinAmp correctly. Use the following WinAmp setting: At the WinAmp menu select "Options". Then "Preferences". Click "Display" in the tree. In the "Show WinAmp in:" box select "System tray only". This will prevent WinAmp from showing its ugly skin... If you now minimize WinAmp then it ends up in the SystemTray and will not be seen on the TaskBar. To restore it just single click the WinAmp icon in the SystemTray. Right clicking the icon on the SystemTray will show the WinAmp menu.
  206.  
  207. "I did what you said, but now I don't see WinAmp anymore..."
  208. Well, that is the idea. You should not see WinAmp, unless you want it to be shown. If you start WinAmp, you do not see it either. If you go and look for it, you will find it in the SystemTray.
  209.  
  210. "The title bar is too small for the song title. How can I make it scroll?"
  211. This is just another WinAmp setting. Open the WinAmp menu. Select "Options". Then "Preferences". Click "Display" in the tree. Finally check "Scroll song title in the Windows task bar". That's it. The text will not only scroll in the task bar, it will also scroll in the title bar of the skin.
  212.  
  213. //////////////////////////////////////////////////////////////////////
  214. // Starting the player
  215. //////////////////////////////////////////////////////////////////////
  216.  
  217. You can either start the player as you used to or you can push any WBAmp button. It takes a while for it to start. During startup it cannot execute the action attached to the button. So the initial click just resulted in the player being started. This is not an error. You have to live with it OR add the player to your Startup menu. This causes the player to start whenever Windows starts.
  218.  
  219. //////////////////////////////////////////////////////////////////////
  220. // Version
  221. //////////////////////////////////////////////////////////////////////
  222.  
  223. You can check what version of WBAmp is installed by right clicking the WBAmp.dll file, then select Properties from the menu and finally click the Version tab.
  224.  
  225. //////////////////////////////////////////////////////////////////////
  226. // WARNINGS
  227. //////////////////////////////////////////////////////////////////////
  228.  
  229. If you design a skin and use WBAmp please be sure that dialog boxes do not have WBAmp buttons. Dialog boxes are used in error messages and since the player can produce errors it would be a bad idea to present WBAmp buttons while in the middle of handling player error.
  230.  
  231. Make shure that WBAmp buttons do not show up on MDI windows. You will end up in having them 
  232. duplicated. Also, I don't what happens if there are more than one visible title buttons. WBAmp does not support it and it can be a performance bottle neck.
  233.  
  234. //////////////////////////////////////////////////////////////////////
  235. // WinAmp Menu
  236. //////////////////////////////////////////////////////////////////////
  237.  
  238. Calling the WinAmp menu without showing WinAmp causes the menu to behave bad. Therefore WinAmp must be shown. Until there is a better solution WinAmp will be shown before the menu is opened.
  239.  
  240. //////////////////////////////////////////////////////////////////////
  241. // CoolPlayer versus WinAmp
  242. //////////////////////////////////////////////////////////////////////
  243.  
  244. Although CoolPlayer has some limitations (it is a pure MP3 player and WinAmp supports CDs and other formats) it behaves better (and some people say it sounds better) than WinAmp. WinAmp has various problems when WBAmp is calling its dialog boxes. CoolPlayer does not have these problems. Why? Niek Albers (programmer of CoolPlayer) did whatever he could to make this plugin work with his player. Again, thanks Niek! NullSoft (makers of WinAmp) did not even properly respond on the problems I had with their player. That reminds me. Sonique support is even worse. Next to that I had to drop support for Sonique altogether because of their limited command line interface.
  245.  
  246. //////////////////////////////////////////////////////////////////////
  247. // Version 1.0.0.4 release notes
  248. //////////////////////////////////////////////////////////////////////
  249.  
  250. Any WBAmp button can startup WinAmp (except WAClose). Not just WAPlay. Startup now rarely fails (I hope). If this fails then start it manually or even better add it to the Startup menu.
  251.  
  252. //////////////////////////////////////////////////////////////////////
  253. // Version 1.0.0.5 release notes
  254. //////////////////////////////////////////////////////////////////////
  255.  
  256. The end of all those tiny DLLs. They are now included in WBAmp.dll.
  257.  
  258. You can now specify which function to clicking the button with shift or control should be executed.
  259.  
  260. The Show function has been improved.
  261.  
  262. The dialog boxes are behaving better.
  263.  
  264. //////////////////////////////////////////////////////////////////////
  265. // Version 1.0.0.6 release notes
  266. //////////////////////////////////////////////////////////////////////
  267.  
  268. Shuffle, Repeat and Single added.
  269.  
  270. VIS dialog box options added. VISSelect does not seem to be working.
  271.  
  272. The Raise and Lower volume by 1% were swapped. This has been fixed.
  273.  
  274. I have asked NullSoft to help me with the dialog boxes. Some beta-testers did not like the current window to be pushed to the back. I have taken it out and hope NullSoft comes with an solution for the final build today.
  275.  
  276. //////////////////////////////////////////////////////////////////////
  277. // Version 1.0.0.7 release notes
  278. //////////////////////////////////////////////////////////////////////
  279.  
  280. Test code removed.
  281.  
  282. Menu code restored.
  283.  
  284. //////////////////////////////////////////////////////////////////////
  285. // Version 1.0.0.8 release notes
  286. //////////////////////////////////////////////////////////////////////
  287.  
  288. Title button added.
  289.  
  290. WBAmp function Run (30) added.
  291.  
  292. Documentation updated.
  293.  
  294. Fixed a serious range checking bug. This bug only showed up when a non-existent function number was specified in the UIS file (number of functions + 1) and caused the skinned program to terminate.
  295.  
  296. There is still a bug when the window calls a dialog box. The title bar button is not updated correctly in that situation. I am working on that one.
  297.  
  298. //////////////////////////////////////////////////////////////////////
  299. // Version 1.0.0.9 release notes
  300. //////////////////////////////////////////////////////////////////////
  301.  
  302. Documentation updated.
  303.  
  304. The title bar button bug has now been fixed.
  305.  
  306. //////////////////////////////////////////////////////////////////////
  307. // Version 1.0.0.10 release notes
  308. //////////////////////////////////////////////////////////////////////
  309.  
  310. Short song titles were unable to fill the entire title button. This bug has been fixed.
  311.  
  312. //////////////////////////////////////////////////////////////////////
  313. // Version 1.1.0.0 release notes
  314. //////////////////////////////////////////////////////////////////////
  315.  
  316. Removed test code.
  317.  
  318. Documented the source code.
  319.  
  320. //////////////////////////////////////////////////////////////////////
  321. // Version 1.1.0.1 release notes
  322. //////////////////////////////////////////////////////////////////////
  323.  
  324. Partial implementation of multi-directional song title buttons.
  325.  
  326. Changed volume handling to make it more responsive.
  327.  
  328. //////////////////////////////////////////////////////////////////////
  329. // Version 1.1.0.2 release notes
  330. //////////////////////////////////////////////////////////////////////
  331.  
  332. Added CoolPlayer support.
  333.  
  334. Known issues:
  335. - When CoolAmp is not runing and it is started then it hides under the 
  336.   taskbar
  337. - WBAmp does not hide and show CoolAmp properly
  338. - Volume buttons do not work
  339. - There is an odd scrolling behaviour
  340.  
  341. Documentation changes (not finished yet)
  342.  
  343. //////////////////////////////////////////////////////////////////////
  344. // Version 1.1.0.3 release notes
  345. //////////////////////////////////////////////////////////////////////
  346.  
  347. CoolPlayer scrolling fixed.
  348.  
  349. //////////////////////////////////////////////////////////////////////
  350. // Version 1.1.0.4 release notes
  351. //////////////////////////////////////////////////////////////////////
  352.  
  353. Sonique support abandoned and removed.
  354.  
  355. //////////////////////////////////////////////////////////////////////
  356. // Version 1.2.0.0 release notes
  357. //////////////////////////////////////////////////////////////////////
  358.  
  359. Public relaese of WBAmp with CoolPlayer support.
  360.